/**********************************************************************
 *** *                                                            * ***
 *** *  Copyright (c) 2013 Harmonia Holdings Group LLC            * ***
 *** *                                                            * ***
 *** * Permission is hereby granted to use, modify, copy, and     * ***
 *** * distribute this software and its documentation for any     * ***
 *** * purpose only without profit, provided that the above       * ***
 *** * Copyright Notice appears in all copies and that both the   * ***
 *** * Copyright Notice and this Permission Notice appears in     * ***
 *** * every copy of supporting documentation.  No title to nor   * ***
 *** * ownership of the software is transferred hereby.  The name * ***
 *** * of Harmonia Holdings Group LLC shall not be used in        * ***
 *** * advertising or publicity related to the distribution of    * ***
 *** * the software without specific, written, prior permission.  * ***
 *** * This software is provided as-delivered without expressed   * ***
 *** * or implied warranty.  Harmonia Holdings Group LLC          * ***
 *** * makes no representation about the suitability of this      * ***
 *** * software for any purpose and accepts no responsibility for * ***
 *** * its use.                                                   * ***
 *** *                                                            * ***
 *** ************************************************************** ***
 *** *                                                            * ***
 *** * This program is free software; you can redistribute it     * ***
 *** * and/or modify it under the terms of the GNU General Public * ***
 *** * License as published by the Free Software Foundation;      * ***
 *** * either version 2 of the License, or (at your option) any   * ***
 *** * later version.                                             * ***
 *** *                                                            * ***
 *** * This program is distributed in the hope that it will be    * ***
 *** * useful, but WITHOUT ANY WARRANTY; without even the implied * ***
 *** * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR    * ***
 *** * PURPOSE.  See the GNU General Public License for more      * ***
 *** * details.                                                   * ***
 *** *                                                            * ***
 *** * You should have received a copy of the GNU General Public  * ***
 *** * License along with this program; if not, write to the Free * ***
 *** * Software Foundation, Inc., 51 Franklin Street, Fifth       * ***
 *** * Floor, Boston, MA 02110-1301, USA.                         * ***
 *** *                                                            * ***
 *** * For more information: http://www.gnu.org/licenses/gpl.html * ***
 *** *                                                            * ***
 **********************************************************************/
package org.etexascode.interrep.datamodel;
import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlTransient;

/**
 * The static simulation data model.
 * @author ablatt
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
@XmlSeeAlso({DetectorManager.class,SignalManager.class,LaneManager.class,SimMetaData.class })
public class StaticData implements Serializable {
    /** Serial ID. */
    @XmlTransient
    private static final long serialVersionUID = -2714571386151794764L;

    /** The detector manager. */
    @XmlElement
    DetectorManager detectorManager;

    /** The signal manager.*/
    @XmlElement
    SignalManager signalManager;

    /** The lane manager. */
    @XmlElement
    LaneManager laneManager;

    /** The metadata. */
    @XmlElement
    SimMetaData metaData;


    /**
     * Gets the detector manager.
     * @return The detector manager.
     */
    public DetectorManager getDetectorManager() {
	return detectorManager;
    }

    /**
     * Gets the lane manager.
     * @return The lane manager.
     */
    public LaneManager getLaneManager() {
	return laneManager;
    }

    /**
     * Gets the metadata.
     * @return The metadata.
     */
    public SimMetaData getMetaData() {
	return metaData;
    }

    /**
     * Gets the signal manager.
     * @return The new signal manager.
     */
    public SignalManager getSignalManager() {
	return signalManager;
    }

    /**
     * Sets the detector manager.
     * @param detectorManager The new detector manager.
     */
    public void setDetectorManager(DetectorManager detectorManager) {
	this.detectorManager = detectorManager;
    }

    /**
     * Sets the lane manager.
     * @param laneManager The new lane manager.
     */
    public void setLaneManager(LaneManager laneManager) {
	this.laneManager = laneManager;
    }

    /**
     * Sets the metadata.
     * @param metaData The new metadata.
     */
    public void setMetaData(SimMetaData metaData) {
	this.metaData = metaData;
    }

    /**
     * Sets the signal manager.
     * @param signalManager The new signal manager.
     */
    public void setSignalManager(SignalManager signalManager) {
	this.signalManager = signalManager;
    }
}